const CompressionPlugin = require("compression-webpack-plugin");
const productionGzipExtensions = ['js', 'css'];
module.exports = {
    chainWebpack: config => {
        // 生产环境，开启js\css压缩
        if (process.env.NODE_ENV === "production") {
            config.plugin('compressionPlugin')
                .use(new CompressionPlugin({
                    filename: '[path].gz[query]', algorithm: 'gzip', // 使用gzip压缩
                    test: productionGzipExtensions, // 匹配文件名
                    threshold: 10240, // 对超过10k的数据压缩
                    minRatio: 0.8, // 压缩率小于0.8才会压缩
                    deleteOriginalAssets: false // 是否删除未压缩的源文件，谨慎设置，如果希望提供非gzip的资源，可不设置或者设置为false（比如删除打包后的gz后还可以加载到原始资源文件）
                }));
        } else {
            config.plugin("compressionPlugin").use(new CompressionPlugin({
                test: /\.(js|css|less)$/, // 匹配文件名
                threshold: 10240, // 对超过10k的数据压缩
                minRatio: 0.8, deleteOriginalAssets: false // 删除源文件
            }));
        }
    }
}